package com.itheima.tcp_demo.test;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.UUID;

/*
    服务器 : 接收客户端发送过来的文件数据 , 把文件数据写到本地文件中 , 在给客户端反馈数据
 */
public class ServerDemo {
    public static void main(String[] args) throws IOException {
        // 创建服务端Socket对象
        ServerSocket serverSocket = new ServerSocket(10010);

        while (true) {
            try {
                // 监听客户端的连接
                Socket socket = serverSocket.accept();
                System.out.println("收到客户端的连接...");
                // 获取网络中的字节输入流 , 封装成高效的输入流
                BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());

                // 创建本地一个高效的字节输出流
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("day13_demo\\" + UUID.randomUUID() + ".jpg"));
                // 接收客户端发过来的一个字节 , 就往本地中写一个字节
                int by;
                while ((by = bis.read()) != -1) {
                    bos.write(by);
                    bos.flush();
                }
                // 释放资源
                bos.close();

                // ==============================================================================================

                // 获取网络中的字节输出流 , 在封装成高效的字符输出流
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
                bw.write("很好看,谢谢你!");
                bw.newLine();
                bw.flush();
            }catch(Exception e){
                e.printStackTrace();
            }
        }


//        bw.close();
//        bis.close();
//        socket.close();
//        serverSocket.close();
    }
}
